﻿#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>

//计算斐波那契数
//int Fun(int n)
//{
//    if (n <= 2)
//        return 1;
//    else
//        return Fun(n - 1) + Fun(n - 2);
//}
//int main()
//{
//    int a = 0;
//    scanf("%d", &a);
//    int c = Fun(a);
//    printf("%d ", c);
//	return 0;
//}

//递归实现n的k次方
//int Cifang(int a, int b)
//{
//    if (b == 1) 
//    {
//        return a;
//    }
//    else if (b == 0)
//    {
//        return 1;
//    }
//    else 
//    {
//        return a * Cifang(a, b - 1);
//    }
//}
//
//int main()
//{
//    int a = 0;
//    int b = 0;
//    scanf("%d%d", &a, &b);
//    int c = Cifang(a,b);
//    printf("%d**%d = %d", a, b, c);
//    return 0;
//}

//写一个递归函数DigitSum(n)，输入一个非负整数，返回组成它的数字之和
//例如，调用DigitSum(1729)，则应该返回1 + 7 + 2 + 9，它的和是19
//输入：1729，输出：19
//int DigitSum(int n)
//{
//	if (n > 9)
//	{	
//		int a = n % 10;
//		return a + DigitSum(n / 10);
//	}
//	else
//	{
//		return n;
//	}
//}
//
//int main()
//{
//	int a = 0;
//    scanf("%d", &a);
//	int b = DigitSum(a);
//	printf("%d", b);
//	return 0;
//}

//递归和非递归分别实现求n的阶乘（不考虑溢出的问题）
//int Diguijiec(int n)
//{
//	if (n == 0 || n == 1)
//	{
//		return 1;
//	}
//	else
//	{
//		return n * Diguijiec(n - 1);
//	}
//
//}
//
//int main()
//{
//	int input = 0;
//	scanf("%d", &input);
//	int c = 0;
//	c = Diguijiec(input);
//	printf("递归: %d! = %d\n", input, c);
//	int sum = 1;
//	int i = 0;
//	for (i = 1; i <= input; i++)
//	{
//		sum *= i;
//	}
//	printf("循环: %d! = %d", input, sum);
//	return 0;
//}

//递归方式实现打印一个整数的每一位
int Print(int n)
{
	if (n > 9)
	{
		Print(n / 10);
		printf("%d ", n % 10);
	}
	else
	{
		printf("%d ", n);
	}
}

int main()
{
	int input = 0;
	scanf("%d", &input);
	Print(input);
	return 0;
}
